package net.guerlab.smart.wx.core.message;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 微信公众号模板消息
 *
 * @author guer
 */
@Data
@ApiModel("微信公众号模板消息")
public class WxMpTemplateMessageData {

    /**
     * 模板id
     */
    @ApiModelProperty("模板id")
    private String templateId;

    /**
     * 模板跳转链接
     */
    @ApiModelProperty("模板跳转链接")
    private String url;

    /**
     * 跳小程序所需数据，不需跳小程序可不用传该数据.
     */
    @ApiModelProperty("跳小程序所需数据，不需跳小程序可不用传该数据.")
    private MiniProgram miniProgram;

    /**
     * 模板内容，不填则下发空模板.
     */
    @ApiModelProperty("模板内容，不填则下发空模板.")
    private List<TemplateData> data;

    /**
     * 模板内容
     */
    @Data
    @ApiModel("模板内容")
    public static class TemplateData {

        /**
         * 字段名
         */
        @ApiModelProperty("字段名")
        private String name;

        /**
         * 字段值
         */
        @ApiModelProperty("字段值")
        private String value;

        /**
         * 颜色
         */
        @ApiModelProperty("颜色")
        private String color;
    }

    /**
     * 小程序数据
     */
    @ApiModel("小程序数据")
    @Data
    public static class MiniProgram {

        /**
         * 应用ID
         */
        @ApiModelProperty("应用ID")
        private String appId;

        /**
         * 应用路径
         */
        @ApiModelProperty("应用路径")
        private String pagePath;

        /**
         * 是否使用path，否则使用pagepath.
         * 加入此字段是基于微信官方接口变化多端的考虑
         */
        @ApiModelProperty("是否使用path，否则使用pagepath")
        private boolean usePath = false;
    }
}
